////////////////////////////////////////////////////////////////////////
// Last svn revision: $Id:  $ 
////////////////////////////////////////////////////////////////////////
/// \class drow::test::TDefaultComplexOp
///
/// \brief   
///
/// \author Olivia Wasalski             <oliviawasalski@triumf.ca>
///
/// REVISION HISTORY:\n
///     22/03/12 : Olivia Wasalski - New File \n
///
/// \details    
///
////////////////////////////////////////////////////////////////////////

#ifndef __drow_test_TDefaultComplexOp__
#define __drow_test_TDefaultComplexOp__

#include "MLCTest/ATestClass.hh"

namespace drow {
    namespace MLC {
        class Complex;
    } // namespace MLC
namespace test {

class TDefaultComplexOp : public ATestClass {
public:
    TDefaultComplexOp() : ATestClass("DefaultComplexOp") {}
    ~TDefaultComplexOp() {}
    void TestClass();

private:
    MLC::Complex CreateComplex(double re, double im);
    void AssertEquals(const MLC::Complex& a, const MLC::Complex& b);
    void TestConjugate();
    void TestAdd();
    void TestSubtract();
    void TestMultiply();
    void TestMagSquared();
    void TestMag();
    void TestAngle();
    
}; // class TDefaultComplexOp
} // namespace Test
} // namespace drow

#endif // __drow_test_TDefaultComplexOp__

